<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // 听写
        //  1 基本数据类型和引用数据类型的区别
        //      基本：存的是值
        //      引用：存的是地址

        //  2 数组深拷贝的方法
        //     一维数组
        //         遍历  push
        //         concat
        //         slice
        //     多维数组
        //         递归(遍历之后判断是否是数组)

        // 3 数组和字符串之间的相互转化   join()   split()

        // 4 用下标截取字符串  slice() / substring()

        // 5 定时器   setInterval

        // 6 延时器   setTimeout

        // 7 清除定时器  clearInterval / clearTimeout

        // 8 获取天数   getDate()

        // 9 定时器的返回值  是数字，代表的是编号

        // 10 js代码的执行顺序
        //    遇到同步直接执行
        //    遇到异步，存放在任务队列中
        //    等到所有的同步任务结束  --- 主线程清空
        //    看任务队列中谁先需要执行，就在主线程上执行






        for (i = 0; i < 10; i++) {
            setTimeout(function () {
                console.log(i);     // 10个5
            }, 0)
        }

        console.log(i);

        for (i = 0; i < 5; i++) {
            console.log(i);
        }



        // var i = 0;

        // setTimeout(function () {
        //     console.log(i);     // 10个10
        // }, 0)

        // i++;

        // setTimeout(function () {
        //     console.log(i);     // 10个10
        // }, 0)

        // i++;

        // setTimeout(function () {
        //     console.log(i);     // 10个10
        // }, 0)

        // i++;

        // setTimeout(function () {
        //     console.log(i);     // 10个10
        // }, 0)

        // i++;

        // setTimeout(function () {
        //     console.log(i);     // 10个10
        // }, 0)

        // i++ ;

        // i = 10 ;






    </script>

</body>

</html>